package jukebox.model.playlist;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

/**
 * @author : 김준섭
 * @since : 2014-07-01
 * @comment : 플레이리스트를 처리하기위한 영속성 클래스 
 */
@Repository
public class PlayListDAOImpl implements PlayListDAO {
	@Resource(name="sqlSessionTemplate")
	private SqlSessionTemplate sqlSessionTemplate;
	
	/**
	 * @method : getPlayList
	 * @author : 김준섭
	 * @since : 2014-07-01
	 * @param : String memberId - 회원 아이디
	 * @return : List - 플레이리스트 정보
	 * @comment : 아이디로 조회하여 플레이리스트를 가져온다.
	 */
	@Override
	public List getPlayList(String memberId) {
		return sqlSessionTemplate.selectList("playlist.getPlayList", memberId);
	}

	/**
	 * @method : addPlayList
	 * @author : 김준섭
	 * @since : 2014-07-01
	 * @param : Map<String, String> map - MEMBER_ID : 회원 아이디, PLAYLIST_NAME : 플레이리스트 이름
	 * @return : void
	 * @comment : 플레이리스트를 등록한다.
	 */
	@Override
	public void addPlayList(Map<String, String> map) {
		sqlSessionTemplate.insert("playlist.addPlayList", map);
	}

	/**
	 * @method : removePlayList
	 * @author : 김준섭
	 * @since : 2014-07-01
	 * @param : int playListNo - 플레이리스트 번호
	 * @return : void
	 * @comment : 플레이리스트를 삭제한다.
	 */
	@Override
	public void removePlayList(int playListNo) {
		sqlSessionTemplate.delete("playlist.removePlayList", playListNo);
	}

	/**
	 * @method : uploadPlayList
	 * @author : 김준섭
	 * @since : 2014-07-01
	 * @param : Map map - playlist_name : 플레이리스트 이름, PLAYLIST_NO : 플레이리스트 번호
	 * @return : void
	 * @comment : 플레이리스트를 수정한다.
	 */
	@Override
	public void uploadPlayList(Map map) {
		sqlSessionTemplate.update("playlist.uploadPlayList", map);
	}

}
